FreeCore Function #11:
VGA Sync Generator
Module name: vga_sync
Current release: version 1.0, October 6, 1997
Contributed by: Rune Baeverrud

Introduction

Shown below is the schematic representation of the vga_sync VGA Sync Generator:

This module makes it very easy to generate the signals required for output to an industry standard VGA computer screen. A number of status output signals are provided for easy synchronizing to external pixel data.

If you would like to do a simple functional test of the above module, you could try the following diagram:

Module Parameters

INPUT PORTS
SysClk System clock input. Normally, you would use a 25.175MHz clock input, as this will output pixel data at the rate specified by the VGA standard. In this case - tie the Enable input to VCC.
Enable One Enable high period corresponds to one output video pixel.You could double or triple the input SysClk frequency - if doubling the input frequency, then you should provide an Enable signal of 1/2 duty cycle. If tripling the input frequency, you should provide 1/3 duty cycle on the Enable input.
OUTPUT PORTS
H_Sync Horizontal sync signal
V_Sync Vertical sync signal
Video Stays at '1' while H_Cnt is within the range [0,639] and V_Cnt is within the range [0,479].
Pix_En Goes to '1' for one SysClk period, once for every pixel, while H_Cnt is within the range [0,639] and V_Cnt is within the range [0,479].
Frame Goes to '1' for one SysClk period before each video frame.
H_Cnt[9..0] Horizontal position of the next pixel to be displayed on the VGA screen. Output is in the range [0,799] but you should only output data when the value is within the range [0,639].
V_Cnt[9..0] Vertical position of the next pixel to be displayed on the VGA screen. Output is in the range [0,524] but you should only output data when the value is within the range [0,479].

NOTE: When you compile a design including the vga_sync module, the timing analyzer may report a maximum clock frequency of about 50MHz. You could probably still use a triple rate input clock at 75MHz if you like. Nothing is happening inside the vga_sync while the Enable input is low, so all signals will have plenty of time to stabilize before the next clock pulse arrive.

Enjoy!


Last updated 08 Feb 2001 11:53